<!DOCTYPE html>
<html lang="zh">
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <title>Sql Inject</title>
  <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700&display=fallback">
  <link rel="stylesheet" href="../../plugins/fontawesome-free/css/all.min.css">
  <link rel="stylesheet" href="../../plugins/overlayScrollbars/css/OverlayScrollbars.min.css">
  <link rel="stylesheet" href="../../dist/css/adminlte.min.css">
</head>
<body class="hold-transition dark-mode sidebar-mini layout-fixed layout-navbar-fixed layout-footer-fixed">
<div class="wrapper">
  <nav id="Navbar" class="main-header navbar navbar-expand navbar-dark"></nav>
  <aside id="Container" class="main-sidebar sidebar-dark-primary elevation-4"></aside>
  <div class="content-wrapper" id="Wrapper">
    <section class="content-header" id="WrapperHeader"></section>
    <section class="content">
      <div class="container-fluid">
        <div id="notice"></div>
        <div class="card card-primary card-outline">
          <div class="card-header">
            <h3 class="card-title">添加/更新语句注入</h3>
          </div>
          <div class="card-body">
            <div class="card card-primary">
              <div class="card-header">
                <h3 class="card-title">后台登录</h3>
              </div>
              <form action="" onsubmit="return false" id="Login">
                <div class="card-body">
                  <div class="form-group">
                    <label for="username">用户名</label>
                    <input type="text" class="form-control" name="username" id="username" placeholder="Enter username">
                  </div>
                  <div class="form-group">
                    <label for="password">密码</label>
                    <input type="password" class="form-control" name="password" id="password" placeholder="Password">
                  </div>
                </div>
                <div class="card-footer">
                  <button type="submit" class="btn btn-info" onclick="showForm(2)">注册</button>
                  <button type="submit" class="btn btn-primary" onclick="doLogin()">登录</button>
                </div>
              </form>
            </div>
          </div>
          <div class="card-body">
            <div class="card card-primary">
              <div class="card-header">
                <h3 class="card-title">注册用户</h3>
              </div>
              <form  action="" onsubmit="return false" id="registerUser">
                <div class="card-body">
                  <div class="form-group">
                    <label for="phone">用户名</label>
                    <input type="text" class="form-control" id="regUserName" placeholder="Enter UserName">
                  </div>
                  <div class="form-group">
                    <label for="phone">密码</label>
                    <input type="password" class="form-control" id="regPassword" placeholder="Enter Password">
                  </div>
                  <div class="form-group">
                    <label for="phone">手机号</label>
                    <input type="text" class="form-control" id="regPhone" placeholder="Enter phone">
                  </div>
                  <div class="form-group">
                    <label for="address">地址</label>
                    <input type="text" class="form-control" id="regAddress" placeholder="Enter address">
                  </div>
                </div>
                <div class="card-footer">
                  <button type="submit" class="btn btn-primary" onclick="registerInfo()">提交注册</button>
                </div>
              </form>
            </div>
          </div>
          <div class="card-body">
            <div class="card card-primary">
              <div class="card-header">
                <h3 class="card-title">修改个人信息</h3>
              </div>
              <form  action="" onsubmit="return false" id="info">
                <div class="card-body">
                  <div class="form-group">
                    <label for="phone">手机号</label>
                    <input type="text" class="form-control" id="phone" placeholder="Enter phone">
                  </div>
                  <div class="form-group">
                    <label for="address">地址</label>
                    <input type="text" class="form-control" id="address" placeholder="Enter address">
                  </div>
                </div>
                <div class="card-footer">
                  <button type="submit" class="btn btn-primary" onclick="updateInfo()">确认修改</button>
                </div>
              </form>
            </div>
          </div>
        </div>
        <div class="card card-primary card-outline" id="showSource">
          <div class="card-header">
            <h3 class="card-title">源代码&amp;提示</h3>
          </div>
          <div class="card-body">
            <div>
              <p>注意：SQL注入篇章使用了第二个数据库，命名为 mycms_gbk。没有使用预编译，在这里你可以任意执行你想要的SQL语句。</p>
              <p>该数据库默认存在用户名为： jake、jessica、both 的用户</p>
              <p>这里涉及了注册、修改个人信息业务逻辑，即添加数据、更新数据。根据不同的拼接位置可以有不同的注入方式。</p>
              <p><strong>Servlet 代码实现</strong></p>
              <pre><code>&#x20;&#x20;&#x20;&#x20;&commat;&#x41;&#x70;&#x69;&lpar;&lcub;&#x52;&#x65;&#x71;&#x75;&#x65;&#x73;&#x74;&#x4D;&#x65;&#x74;&#x68;&#x6F;&#x64;&#x54;&#x79;&#x70;&#x65;&period;&#x50;&#x4F;&#x53;&#x54;&rcub;&rpar;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x70;&#x75;&#x62;&#x6C;&#x69;&#x63;&#x20;&#x4D;&#x61;&#x70;&lt;&quest;&comma;&#x20;&quest;&gt;&#x20;&#x72;&#x65;&#x67;&#x69;&#x73;&#x74;&#x65;&#x72;&lpar;&#x48;&#x74;&#x74;&#x70;&#x53;&#x65;&#x72;&#x76;&#x6C;&#x65;&#x74;&#x52;&#x65;&#x71;&#x75;&#x65;&#x73;&#x74;&#x20;&#x72;&#x65;&#x71;&#x75;&#x65;&#x73;&#x74;&comma;&#x20;&#x48;&#x74;&#x74;&#x70;&#x53;&#x65;&#x72;&#x76;&#x6C;&#x65;&#x74;&#x52;&#x65;&#x73;&#x70;&#x6F;&#x6E;&#x73;&#x65;&#x20;&#x72;&#x65;&#x73;&#x70;&#x6F;&#x6E;&#x73;&#x65;&rpar;&lcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&#x20;&#x75;&#x73;&#x65;&#x72;&#x6E;&#x61;&#x6D;&#x65;&#x20;&equals;&#x20;&#x72;&#x65;&#x71;&#x75;&#x65;&#x73;&#x74;&period;&#x67;&#x65;&#x74;&#x50;&#x61;&#x72;&#x61;&#x6D;&#x65;&#x74;&#x65;&#x72;&lpar;&quot;&#x75;&#x73;&#x65;&#x72;&#x6E;&#x61;&#x6D;&#x65;&quot;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&#x20;&#x70;&#x61;&#x73;&#x73;&#x77;&#x6F;&#x72;&#x64;&#x20;&equals;&#x20;&#x72;&#x65;&#x71;&#x75;&#x65;&#x73;&#x74;&period;&#x67;&#x65;&#x74;&#x50;&#x61;&#x72;&#x61;&#x6D;&#x65;&#x74;&#x65;&#x72;&lpar;&quot;&#x70;&#x61;&#x73;&#x73;&#x77;&#x6F;&#x72;&#x64;&quot;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&#x20;&#x70;&#x68;&#x6F;&#x6E;&#x65;&#x20;&equals;&#x20;&#x72;&#x65;&#x71;&#x75;&#x65;&#x73;&#x74;&period;&#x67;&#x65;&#x74;&#x50;&#x61;&#x72;&#x61;&#x6D;&#x65;&#x74;&#x65;&#x72;&lpar;&quot;&#x70;&#x68;&#x6F;&#x6E;&#x65;&quot;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&#x20;&#x61;&#x64;&#x64;&#x72;&#x65;&#x73;&#x73;&#x20;&equals;&#x20;&#x72;&#x65;&#x71;&#x75;&#x65;&#x73;&#x74;&period;&#x67;&#x65;&#x74;&#x50;&#x61;&#x72;&#x61;&#x6D;&#x65;&#x74;&#x65;&#x72;&lpar;&quot;&#x61;&#x64;&#x64;&#x72;&#x65;&#x73;&#x73;&quot;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x72;&#x65;&#x74;&#x75;&#x72;&#x6E;&#x20;&#x75;&#x67;&#x64;&#x69;&period;&#x61;&#x64;&#x64;&#x55;&#x73;&#x65;&#x72;&lpar;&#x6E;&#x65;&#x77;&#x20;&#x55;&#x73;&#x65;&#x72;&#x45;&#x6E;&#x74;&#x69;&#x74;&#x79;&lpar;&#x75;&#x73;&#x65;&#x72;&#x6E;&#x61;&#x6D;&#x65;&comma;&#x20;&#x70;&#x61;&#x73;&#x73;&#x77;&#x6F;&#x72;&#x64;&rpar;&comma;&#x20;&#x6E;&#x65;&#x77;&#x20;&#x55;&#x73;&#x65;&#x72;&#x49;&#x6E;&#x66;&#x6F;&#x45;&#x6E;&#x74;&#x69;&#x74;&#x79;&lpar;&#x70;&#x68;&#x6F;&#x6E;&#x65;&comma;&#x20;&#x61;&#x64;&#x64;&#x72;&#x65;&#x73;&#x73;&rpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&rcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&commat;&#x41;&#x70;&#x69;&lpar;&lcub;&#x52;&#x65;&#x71;&#x75;&#x65;&#x73;&#x74;&#x4D;&#x65;&#x74;&#x68;&#x6F;&#x64;&#x54;&#x79;&#x70;&#x65;&period;&#x50;&#x4F;&#x53;&#x54;&rcub;&rpar;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x70;&#x75;&#x62;&#x6C;&#x69;&#x63;&#x20;&#x4D;&#x61;&#x70;&lt;&quest;&comma;&#x20;&quest;&gt;&#x20;&#x75;&#x70;&#x64;&#x61;&#x74;&#x65;&#x43;&#x75;&#x72;&#x72;&#x65;&#x6E;&#x74;&#x55;&#x73;&#x65;&#x72;&#x49;&#x6E;&#x66;&#x6F;&lpar;&#x48;&#x74;&#x74;&#x70;&#x53;&#x65;&#x72;&#x76;&#x6C;&#x65;&#x74;&#x52;&#x65;&#x71;&#x75;&#x65;&#x73;&#x74;&#x20;&#x72;&#x65;&#x71;&#x75;&#x65;&#x73;&#x74;&comma;&#x20;&#x48;&#x74;&#x74;&#x70;&#x53;&#x65;&#x72;&#x76;&#x6C;&#x65;&#x74;&#x52;&#x65;&#x73;&#x70;&#x6F;&#x6E;&#x73;&#x65;&#x20;&#x72;&#x65;&#x73;&#x70;&#x6F;&#x6E;&#x73;&#x65;&rpar;&lcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&#x20;&#x70;&#x68;&#x6F;&#x6E;&#x65;&#x20;&equals;&#x20;&#x72;&#x65;&#x71;&#x75;&#x65;&#x73;&#x74;&period;&#x67;&#x65;&#x74;&#x50;&#x61;&#x72;&#x61;&#x6D;&#x65;&#x74;&#x65;&#x72;&lpar;&quot;&#x70;&#x68;&#x6F;&#x6E;&#x65;&quot;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&#x20;&#x61;&#x64;&#x64;&#x72;&#x65;&#x73;&#x73;&#x20;&equals;&#x20;&#x72;&#x65;&#x71;&#x75;&#x65;&#x73;&#x74;&period;&#x67;&#x65;&#x74;&#x50;&#x61;&#x72;&#x61;&#x6D;&#x65;&#x74;&#x65;&#x72;&lpar;&quot;&#x61;&#x64;&#x64;&#x72;&#x65;&#x73;&#x73;&quot;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x48;&#x61;&#x73;&#x68;&#x4D;&#x61;&#x70;&lt;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&comma;&#x20;&#x4F;&#x62;&#x6A;&#x65;&#x63;&#x74;&gt;&#x20;&#x64;&#x61;&#x74;&#x61;&#x20;&equals;&#x20;&#x6E;&#x65;&#x77;&#x20;&#x48;&#x61;&#x73;&#x68;&#x4D;&#x61;&#x70;&lt;&gt;&lpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x48;&#x74;&#x74;&#x70;&#x53;&#x65;&#x73;&#x73;&#x69;&#x6F;&#x6E;&#x20;&#x73;&#x65;&#x73;&#x73;&#x69;&#x6F;&#x6E;&#x20;&equals;&#x20;&#x72;&#x65;&#x71;&#x75;&#x65;&#x73;&#x74;&period;&#x67;&#x65;&#x74;&#x53;&#x65;&#x73;&#x73;&#x69;&#x6F;&#x6E;&lpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x62;&#x6F;&#x6F;&#x6C;&#x65;&#x61;&#x6E;&#x20;&#x69;&#x73;&#x4C;&#x6F;&#x67;&#x69;&#x6E;&#x20;&equals;&#x20;&#x73;&#x65;&#x73;&#x73;&#x69;&#x6F;&#x6E;&period;&#x67;&#x65;&#x74;&#x41;&#x74;&#x74;&#x72;&#x69;&#x62;&#x75;&#x74;&#x65;&lpar;&quot;&#x75;&#x73;&#x65;&#x72;&quot;&rpar;&#x20;&excl;&equals;&#x20;&#x6E;&#x75;&#x6C;&#x6C;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x64;&#x61;&#x74;&#x61;&period;&#x70;&#x75;&#x74;&lpar;&quot;&#x6C;&#x6F;&#x67;&#x69;&#x6E;&#x53;&#x74;&#x61;&#x74;&#x75;&#x73;&quot;&comma;&#x20;&#x69;&#x73;&#x4C;&#x6F;&#x67;&#x69;&#x6E;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x69;&#x66;&#x20;&lpar;&#x69;&#x73;&#x4C;&#x6F;&#x67;&#x69;&#x6E;&rpar;&lcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x48;&#x61;&#x73;&#x68;&#x4D;&#x61;&#x70;&lt;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&comma;&#x20;&#x4F;&#x62;&#x6A;&#x65;&#x63;&#x74;&gt;&#x20;&#x75;&#x73;&#x65;&#x72;&#x20;&equals;&#x20;&lpar;&#x48;&#x61;&#x73;&#x68;&#x4D;&#x61;&#x70;&lt;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&comma;&#x20;&#x4F;&#x62;&#x6A;&#x65;&#x63;&#x74;&gt;&rpar;&#x20;&#x73;&#x65;&#x73;&#x73;&#x69;&#x6F;&#x6E;&period;&#x67;&#x65;&#x74;&#x41;&#x74;&#x74;&#x72;&#x69;&#x62;&#x75;&#x74;&#x65;&lpar;&quot;&#x75;&#x73;&#x65;&#x72;&quot;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x64;&#x61;&#x74;&#x61;&period;&#x70;&#x75;&#x74;&lpar;&quot;&#x75;&#x70;&#x64;&#x61;&#x74;&#x65;&#x53;&#x74;&#x61;&#x74;&#x75;&#x73;&quot;&comma;&#x20;&#x75;&#x67;&#x64;&#x69;&period;&#x75;&#x70;&#x64;&#x61;&#x74;&#x65;&#x55;&#x73;&#x65;&#x72;&#x49;&#x6E;&#x66;&#x6F;&#x42;&#x79;&#x55;&#x73;&#x65;&#x72;&#x49;&#x44;&lpar;&lpar;&#x69;&#x6E;&#x74;&rpar;&#x20;&#x75;&#x73;&#x65;&#x72;&period;&#x67;&#x65;&#x74;&lpar;&quot;&#x69;&#x64;&quot;&rpar;&comma;&#x20;&#x70;&#x68;&#x6F;&#x6E;&#x65;&comma;&#x20;&#x61;&#x64;&#x64;&#x72;&#x65;&#x73;&#x73;&rpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&rcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x72;&#x65;&#x74;&#x75;&#x72;&#x6E;&#x20;&#x64;&#x61;&#x74;&#x61;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&rcub;</code></pre>
              <p><strong>数据库操作代码</strong></p>
              <pre><code>&#x20;&#x20;&#x20;&#x20;&#x70;&#x75;&#x62;&#x6C;&#x69;&#x63;&#x20;&#x48;&#x61;&#x73;&#x68;&#x4D;&#x61;&#x70;&lt;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&comma;&#x20;&#x4F;&#x62;&#x6A;&#x65;&#x63;&#x74;&gt;&#x20;&#x61;&#x64;&#x64;&#x55;&#x73;&#x65;&#x72;&lpar;&#x55;&#x73;&#x65;&#x72;&#x45;&#x6E;&#x74;&#x69;&#x74;&#x79;&#x20;&#x75;&#x73;&#x65;&#x72;&comma;&#x20;&#x55;&#x73;&#x65;&#x72;&#x49;&#x6E;&#x66;&#x6F;&#x45;&#x6E;&#x74;&#x69;&#x74;&#x79;&#x20;&#x75;&#x73;&#x65;&#x72;&#x49;&#x6E;&#x66;&#x6F;&rpar;&#x20;&lcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x48;&#x61;&#x73;&#x68;&#x4D;&#x61;&#x70;&lt;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&comma;&#x20;&#x4F;&#x62;&#x6A;&#x65;&#x63;&#x74;&gt;&#x20;&#x64;&#x61;&#x74;&#x61;&#x20;&equals;&#x20;&#x6E;&#x65;&#x77;&#x20;&#x48;&#x61;&#x73;&#x68;&#x4D;&#x61;&#x70;&lt;&gt;&lpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x74;&#x72;&#x79;&lcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x69;&#x6E;&#x74;&#x20;&#x69;&#x20;&equals;&#x20;&#x73;&period;&#x65;&#x78;&#x65;&#x63;&#x75;&#x74;&#x65;&#x55;&#x70;&#x64;&#x61;&#x74;&#x65;&lpar;&quot;&#x69;&#x6E;&#x73;&#x65;&#x72;&#x74;&#x20;&#x69;&#x6E;&#x74;&#x6F;&#x20;&#x73;&#x79;&#x73;&lowbar;&#x61;&#x63;&#x63;&#x6F;&#x75;&#x6E;&#x74;&#x20;&lpar;&#x75;&#x73;&#x65;&#x72;&#x6E;&#x61;&#x6D;&#x65;&comma;&#x70;&#x61;&#x73;&#x73;&#x77;&#x6F;&#x72;&#x64;&rpar;&#x20;&#x76;&#x61;&#x6C;&#x75;&#x65;&#x73;&#x20;&lpar;&apos;&quot;&#x20;&plus;&#x20;&#x75;&#x73;&#x65;&#x72;&period;&#x67;&#x65;&#x74;&#x55;&#x73;&#x65;&#x72;&#x6E;&#x61;&#x6D;&#x65;&lpar;&rpar;&#x20;&plus;&#x20;&quot;&apos;&comma;&#x20;&apos;&quot;&#x20;&plus;&#x20;&#x75;&#x73;&#x65;&#x72;&period;&#x67;&#x65;&#x74;&#x50;&#x61;&#x73;&#x73;&#x77;&#x6F;&#x72;&#x64;&lpar;&rpar;&#x20;&plus;&#x20;&quot;&apos;&rpar;&quot;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x69;&#x66;&#x20;&lpar;&#x69;&#x20;&lt;&#x20;&#x31;&rpar;&lcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x64;&#x61;&#x74;&#x61;&period;&#x70;&#x75;&#x74;&lpar;&quot;&#x6D;&#x73;&#x67;&quot;&comma;&#x20;&quot;&#x65;&#x72;&#x72;&#x6F;&#x72;&quot;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x72;&#x65;&#x74;&#x75;&#x72;&#x6E;&#x20;&#x64;&#x61;&#x74;&#x61;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&rcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x48;&#x61;&#x73;&#x68;&#x4D;&#x61;&#x70;&lt;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&comma;&#x20;&#x4F;&#x62;&#x6A;&#x65;&#x63;&#x74;&gt;&#x20;&#x75;&#x73;&#x65;&#x72;&#x4F;&#x62;&#x6A;&#x20;&equals;&#x20;&#x74;&#x68;&#x69;&#x73;&period;&#x66;&#x69;&#x6E;&#x64;&#x55;&#x73;&#x65;&#x72;&#x42;&#x79;&#x55;&#x73;&#x65;&#x72;&#x6E;&#x61;&#x6D;&#x65;&lpar;&#x75;&#x73;&#x65;&#x72;&period;&#x67;&#x65;&#x74;&#x55;&#x73;&#x65;&#x72;&#x6E;&#x61;&#x6D;&#x65;&lpar;&rpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x64;&#x61;&#x74;&#x61;&period;&#x70;&#x75;&#x74;&lpar;&quot;&#x75;&#x73;&#x65;&#x72;&#x6E;&#x61;&#x6D;&#x65;&quot;&comma;&#x20;&#x75;&#x73;&#x65;&#x72;&#x4F;&#x62;&#x6A;&period;&#x67;&#x65;&#x74;&lpar;&quot;&#x75;&#x73;&#x65;&#x72;&#x6E;&#x61;&#x6D;&#x65;&quot;&rpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x69;&#x6E;&#x74;&#x20;&#x6A;&#x20;&equals;&#x20;&#x73;&period;&#x65;&#x78;&#x65;&#x63;&#x75;&#x74;&#x65;&#x55;&#x70;&#x64;&#x61;&#x74;&#x65;&lpar;&quot;&#x69;&#x6E;&#x73;&#x65;&#x72;&#x74;&#x20;&#x69;&#x6E;&#x74;&#x6F;&#x20;&#x73;&#x79;&#x73;&lowbar;&#x75;&#x73;&#x65;&#x72;&#x69;&#x6E;&#x66;&#x6F;&#x20;&lpar;&#x70;&#x68;&#x6F;&#x6E;&#x65;&comma;&#x61;&#x64;&#x64;&#x72;&#x65;&#x73;&#x73;&comma;&#x75;&#x73;&#x65;&#x72;&#x49;&#x44;&rpar;&#x20;&#x76;&#x61;&#x6C;&#x75;&#x65;&#x73;&#x20;&lpar;&apos;&quot;&#x20;&plus;&#x20;&#x75;&#x73;&#x65;&#x72;&#x49;&#x6E;&#x66;&#x6F;&period;&#x67;&#x65;&#x74;&#x50;&#x68;&#x6F;&#x6E;&#x65;&lpar;&rpar;&#x20;&plus;&#x20;&quot;&apos;&comma;&#x20;&apos;&quot;&#x20;&plus;&#x20;&#x75;&#x73;&#x65;&#x72;&#x49;&#x6E;&#x66;&#x6F;&period;&#x67;&#x65;&#x74;&#x41;&#x64;&#x64;&#x72;&#x65;&#x73;&#x73;&lpar;&rpar;&#x20;&plus;&#x20;&quot;&apos;&comma;&#x20;&quot;&#x20;&plus;&#x20;&#x75;&#x73;&#x65;&#x72;&#x4F;&#x62;&#x6A;&period;&#x67;&#x65;&#x74;&lpar;&quot;&#x69;&#x64;&quot;&rpar;&#x20;&plus;&#x20;&quot;&rpar;&semi;&quot;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x69;&#x66;&#x20;&lpar;&#x6A;&#x20;&lt;&#x20;&#x31;&rpar;&lcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x64;&#x61;&#x74;&#x61;&period;&#x70;&#x75;&#x74;&lpar;&quot;&#x6D;&#x73;&#x67;&quot;&comma;&#x20;&quot;&#x65;&#x72;&#x72;&#x6F;&#x72;&quot;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x72;&#x65;&#x74;&#x75;&#x72;&#x6E;&#x20;&#x64;&#x61;&#x74;&#x61;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&rcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x53;&#x79;&#x73;&#x74;&#x65;&#x6D;&period;&#x6F;&#x75;&#x74;&period;&#x70;&#x72;&#x69;&#x6E;&#x74;&#x6C;&#x6E;&lpar;&#x75;&#x73;&#x65;&#x72;&#x49;&#x6E;&#x66;&#x6F;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x48;&#x61;&#x73;&#x68;&#x4D;&#x61;&#x70;&lt;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&comma;&#x20;&#x4F;&#x62;&#x6A;&#x65;&#x63;&#x74;&gt;&#x20;&#x75;&#x73;&#x65;&#x72;&#x49;&#x6E;&#x66;&#x6F;&#x4F;&#x62;&#x6A;&#x20;&equals;&#x20;&#x74;&#x68;&#x69;&#x73;&period;&#x66;&#x69;&#x6E;&#x64;&#x55;&#x73;&#x65;&#x72;&#x49;&#x6E;&#x66;&#x6F;&#x42;&#x79;&#x55;&#x73;&#x65;&#x72;&#x49;&#x44;&lpar;&lpar;&#x69;&#x6E;&#x74;&rpar;&#x20;&#x75;&#x73;&#x65;&#x72;&#x4F;&#x62;&#x6A;&period;&#x67;&#x65;&#x74;&lpar;&quot;&#x69;&#x64;&quot;&rpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x53;&#x79;&#x73;&#x74;&#x65;&#x6D;&period;&#x6F;&#x75;&#x74;&period;&#x70;&#x72;&#x69;&#x6E;&#x74;&#x6C;&#x6E;&lpar;&#x75;&#x73;&#x65;&#x72;&#x49;&#x6E;&#x66;&#x6F;&#x4F;&#x62;&#x6A;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x69;&#x66;&#x20;&lpar;&#x75;&#x73;&#x65;&#x72;&#x49;&#x6E;&#x66;&#x6F;&#x4F;&#x62;&#x6A;&period;&#x69;&#x73;&#x45;&#x6D;&#x70;&#x74;&#x79;&lpar;&rpar;&rpar;&lcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x64;&#x61;&#x74;&#x61;&period;&#x70;&#x75;&#x74;&lpar;&quot;&#x6D;&#x73;&#x67;&quot;&comma;&#x20;&quot;&#x65;&#x72;&#x72;&#x6F;&#x72;&quot;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x72;&#x65;&#x74;&#x75;&#x72;&#x6E;&#x20;&#x64;&#x61;&#x74;&#x61;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&rcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x64;&#x61;&#x74;&#x61;&period;&#x70;&#x75;&#x74;&lpar;&quot;&#x70;&#x68;&#x6F;&#x6E;&#x65;&quot;&comma;&#x20;&#x75;&#x73;&#x65;&#x72;&#x49;&#x6E;&#x66;&#x6F;&#x4F;&#x62;&#x6A;&period;&#x67;&#x65;&#x74;&lpar;&quot;&#x70;&#x68;&#x6F;&#x6E;&#x65;&quot;&rpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x64;&#x61;&#x74;&#x61;&period;&#x70;&#x75;&#x74;&lpar;&quot;&#x61;&#x64;&#x64;&#x72;&#x65;&#x73;&#x73;&quot;&comma;&#x20;&#x75;&#x73;&#x65;&#x72;&#x49;&#x6E;&#x66;&#x6F;&#x4F;&#x62;&#x6A;&period;&#x67;&#x65;&#x74;&lpar;&quot;&#x61;&#x64;&#x64;&#x72;&#x65;&#x73;&#x73;&quot;&rpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x64;&#x61;&#x74;&#x61;&period;&#x70;&#x75;&#x74;&lpar;&quot;&#x6D;&#x73;&#x67;&quot;&comma;&#x20;&quot;&#x6F;&#x6B;&quot;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&rcub;&#x63;&#x61;&#x74;&#x63;&#x68;&#x20;&lpar;&#x53;&#x51;&#x4C;&#x45;&#x78;&#x63;&#x65;&#x70;&#x74;&#x69;&#x6F;&#x6E;&#x20;&#x65;&rpar;&lcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x65;&period;&#x70;&#x72;&#x69;&#x6E;&#x74;&#x53;&#x74;&#x61;&#x63;&#x6B;&#x54;&#x72;&#x61;&#x63;&#x65;&lpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x64;&#x61;&#x74;&#x61;&period;&#x70;&#x75;&#x74;&lpar;&quot;&#x6D;&#x73;&#x67;&quot;&comma;&#x20;&#x65;&period;&#x67;&#x65;&#x74;&#x4D;&#x65;&#x73;&#x73;&#x61;&#x67;&#x65;&lpar;&rpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&rcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x72;&#x65;&#x74;&#x75;&#x72;&#x6E;&#x20;&#x64;&#x61;&#x74;&#x61;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&rcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x70;&#x75;&#x62;&#x6C;&#x69;&#x63;&#x20;&#x62;&#x6F;&#x6F;&#x6C;&#x65;&#x61;&#x6E;&#x20;&#x75;&#x70;&#x64;&#x61;&#x74;&#x65;&#x55;&#x73;&#x65;&#x72;&#x49;&#x6E;&#x66;&#x6F;&#x42;&#x79;&#x55;&#x73;&#x65;&#x72;&#x49;&#x44;&lpar;&#x69;&#x6E;&#x74;&#x20;&#x75;&#x73;&#x65;&#x72;&#x49;&#x44;&comma;&#x20;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&#x20;&#x70;&#x68;&#x6F;&#x6E;&#x65;&comma;&#x20;&#x53;&#x74;&#x72;&#x69;&#x6E;&#x67;&#x20;&#x61;&#x64;&#x64;&#x72;&#x65;&#x73;&#x73;&rpar;&lcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x74;&#x72;&#x79;&#x20;&lcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x69;&#x6E;&#x74;&#x20;&#x69;&#x20;&equals;&#x20;&#x73;&period;&#x65;&#x78;&#x65;&#x63;&#x75;&#x74;&#x65;&#x55;&#x70;&#x64;&#x61;&#x74;&#x65;&lpar;&quot;&#x75;&#x70;&#x64;&#x61;&#x74;&#x65;&#x20;&#x73;&#x79;&#x73;&lowbar;&#x75;&#x73;&#x65;&#x72;&#x69;&#x6E;&#x66;&#x6F;&#x20;&#x73;&#x65;&#x74;&#x20;&#x70;&#x68;&#x6F;&#x6E;&#x65;&equals;&apos;&quot;&#x20;&plus;&#x20;&#x70;&#x68;&#x6F;&#x6E;&#x65;&#x20;&plus;&#x20;&quot;&apos;&comma;&#x61;&#x64;&#x64;&#x72;&#x65;&#x73;&#x73;&equals;&apos;&quot;&#x20;&plus;&#x20;&#x61;&#x64;&#x64;&#x72;&#x65;&#x73;&#x73;&#x20;&plus;&#x20;&quot;&apos;&#x20;&#x77;&#x68;&#x65;&#x72;&#x65;&#x20;&#x75;&#x73;&#x65;&#x72;&#x49;&#x44;&equals;&quot;&#x20;&plus;&#x20;&#x75;&#x73;&#x65;&#x72;&#x49;&#x44;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x72;&#x65;&#x74;&#x75;&#x72;&#x6E;&#x20;&#x69;&#x20;&gt;&equals;&#x20;&#x31;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&rcub;&#x20;&#x63;&#x61;&#x74;&#x63;&#x68;&#x20;&lpar;&#x53;&#x51;&#x4C;&#x45;&#x78;&#x63;&#x65;&#x70;&#x74;&#x69;&#x6F;&#x6E;&#x20;&#x65;&rpar;&lcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x65;&period;&#x70;&#x72;&#x69;&#x6E;&#x74;&#x53;&#x74;&#x61;&#x63;&#x6B;&#x54;&#x72;&#x61;&#x63;&#x65;&lpar;&rpar;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x72;&#x65;&#x74;&#x75;&#x72;&#x6E;&#x20;&#x66;&#x61;&#x6C;&#x73;&#x65;&semi;&NewLine;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&#x20;&rcub;&NewLine;&#x20;&#x20;&#x20;&#x20;&rcub;</code></pre>
            </div>
          </div>
        </div>
      </div>
    </section>
  </div>
</div>
  <aside class="control-sidebar control-sidebar-dark">
    <!-- Control sidebar content goes here -->
  </aside>
  <footer class="main-footer"></footer>
  <script src="../../dist/js/templateHandle.js"></script>
  <script>
    setWrapperHeader("Sql Inject", ["添加/更新语句注入"]);
  </script>
  <script src="../../plugins/jquery/jquery.min.js"></script>
  <script src="../../plugins/bootstrap/js/bootstrap.bundle.min.js"></script>
  <script src="../../plugins/overlayScrollbars/js/jquery.overlayScrollbars.min.js"></script>
  <script src="../../dist/js/adminlte.js"></script>
  <script>
    const notice_dom = $("#notice")[0];
    const out_msg = "<a href='#' onClick='loginOut()' style='color: #6db3ff;'>点击登出</a>";
    showInfo();
    function doLogin(){
      let data = {
        username: $("#username")[0].value,
        password: $("#password")[0].value,
      }
      if (data.username.length <= 0 && data.username.length <= 0)return false;
      $.post({
        url: `${project_name}sqli/login`,
        data,
        dataType: "json",
        success(resp){
          console.log(resp)
          if(resp["msg"]==='ok'){
            showInfo();
          } else {
            notice_dom.innerHTML = generateNote("登录失败，账号或者密码错误！");
          }
        }
      })
    }

    function showInfo(){
      $.get({
        url: `${project_name}sqli/getCurrentUserInfo`,
        xhrFields: {
          withCredentials: true
        },
        success(resp) {
          if (!resp['loginStatus'])showForm(1);
          let user_info = resp['userInfo'];
          if (user_info.msg === 'ok'){
            $("#phone")[0].value = user_info.phone;
            $("#address")[0].value = user_info.address;
            notice_dom.innerHTML = generateNote("登录成功！欢迎 " + user_info.username + " 修改个人信息。" + out_msg);
            showForm(3)
          } else {
            notice_dom.innerHTML = generateNote("未知错误");
            showInfo();
          }
        }
      })
    }

    function updateInfo(){
      let data = {
        phone : $("#phone")[0].value,
        address: $("#address")[0].value
      }
      $.post({
        url: `${project_name}/sqli/updateCurrentUserInfo`,
        data,
        xhrFields: {
          withCredentials: true
        },
        dataType: "json",
        success(resp){
          console.log(resp)
          if(!resp["loginStatus"])notice_dom.innerHTML = generateNote("修改成功！");
          if(resp['updateStatus'])notice_dom.innerHTML = generateNote("修改成功！");
          window.location.reload();
        }
      })
    }

    function showForm(index){
      let forms = $("#Wrapper > section.content > div > div.card.card-primary.card-outline > div:nth-child(n+2)")
      forms[0].style  = index === 1 ? "display:block" : "display:none"
      forms[1].style  = index === 2 ? "display:block" : "display:none"
      forms[2].style  = index === 3 ? "display:block" : "display:none"
    }

    function registerInfo(){
      let data = {
        username: $("#regUserName")[0].value,
        password: $("#regPassword")[0].value,
        phone: $("#regPhone")[0].value,
        address: $("#regAddress")[0].value,
      }
      $.post({
        url: `${project_name}sqli/register`,
        data,
        dataType: "json",
        success(resp){
          if(resp['msg'] === 'ok'){
            notice_dom.innerHTML = generateNote("注册成功！");
            showForm(1);
          } else {
            notice_dom.innerHTML = generateNote("注册失败！");
          }
        }
      })
    }

    function loginOut(){
      document.cookie = '';
      notice_dom.innerHTML='';
      showForm(1);
      $.get({
        url: `${project_name}sqli/loginOut`,
        xhrFields: {
          withCredentials: true
        },
        success(resp) {
          location.reload();
        }
      })
    }
  </script>
</body>
</html>